#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

//定义双向链表的结点结构
typedef int LTDataType;
typedef struct ListNode
{
	LTDataType data;
	struct ListNode* next;
	struct ListNode* prev;
}LTNode;

// void LTInit(LTNode** pphead);//初始化链表
LTNode* LTInit();
void LTPrint(LTNode* phead);//打印链表
bool LTEmpty(LTNode* phead);//判断链表是否为空
LTNode* LTFind(LTNode* phead, LTDataType x);//查找数据


//插入数据
void LTPushBack(LTNode* phead, LTDataType x);//尾插
void LTPushFront(LTNode* phead, LTDataType x);//头插
void LTInsert(LTNode* pos, LTDataType x);//在指定位置之后插入数据


//删除数据
void LTPopBack(LTNode* phead);//尾删
void LTPopFront(LTNode* phead);//头删
void LTErase(LTNode* pos);//在指定位置删除


// void LTDesTroy(LTNode** pphead);//销毁链表
void LTDesTroy2(LTNode* phead);

